/*
 *  PromptTextHelper.cs
 *  
 *  Provides the capability for controls to show prompt text.
 *  
 *  Copyright (c) 2009, Richard Bao Labs.
 *  
 *  The contents of this file are subject to the Mozilla Public License
 *  Version 1.1 (the "License"); you may not use this file except in
 *  compliance with the License. You may obtain a copy of the License at
 *  
 *  http://www.mozilla.org/MPL/
 *  
 *  Software distributed under the License is distributed on an "AS IS"
 *  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 *  the License for the specific language governing rights and limitations
 *  under the License.
 *  
 *  The Original Code is RichControlLibrary.
 *  
 *  The Initial Developer of the Original Code is Richard Bao Labs.
 *  All Rights Reserved.
 */

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace RichControlLibrary.Internal
{
    internal class AutoSelectHelper : IDisposable
    {
        public AutoSelectHelper(ITextControl text)
        {
            _text = text;

            _text.GotFocus += new EventHandler(_text_GotFocus);
        }

        ~AutoSelectHelper()
        {
            Dispose();
        }

        private ITextControl _text = null;

        private bool _enabled = true;
        public bool Enabled
        {
            get { return _enabled; }
            set { _enabled = value; }
        }

        private void _text_GotFocus(object sender, EventArgs e)
        {
            if (_enabled)
            {
                _text.SelectAll();
            }
        }

        #region IDisposable Members

        public void Dispose()
        {
            _text.GotFocus -= new EventHandler(_text_GotFocus);

            GC.SuppressFinalize(this);
        }

        #endregion
    }
}
